package com.ruicar.afs.cloud.manage.revoke.vo;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruicar.afs.cloud.common.modules.contract.enums.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author infinitybi
 * @version 1.0
 * @date 2020/8/7 19:08
 */
@Data
public class ManageCollectCancelVo   {
    @JsonSerialize( using = ToStringSerializer.class)
    private Long id;
    @ApiModelProperty("申请编号")
    private String applyNo;
    @ApiModelProperty("收据id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long receiptId;
    @ApiModelProperty("审批结果")
    private String approvalOperating;
    @ApiModelProperty("审批意见")
    private String approvalOpinion;
    @ApiModelProperty("原因类型")
    private String reasonType;
    /** 处理人员 */
    @ApiModelProperty("处理人员")
    private String processPerson;
    @ApiModelProperty("部门")
    private String department;
    @ApiModelProperty("证件号码")
    private String certNo;
    @ApiModelProperty("合同状态")
    private String contractStatus;
    @ApiModelProperty("名称")
    private String custName;
    @ApiModelProperty("联系方式号码")
    private String contactNo;
    /** 业务类型;枚举值：合同取消、身份信息变更、联系方式变更、银行卡变更、还款日变更、资产信息变更、对公还款、合同重出、溢缴款退款、延期申请、提前结清、展期 */
    @ApiModelProperty("业务类型")
    private BusinessTypeEnum contractBusiness;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("案件发起时间")
    private Date startTime;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("案件结束时间")
    private Date endTime;
    @ApiModelProperty("收据状态 枚举值：收款成功，撤销审核中，已撤销")
    private ReceiptStatusEnum receiptStatus;
    @ApiModelProperty("案件类型  枚举值：对公结算，微信还款，银行代扣")
    private ReceiptSourceTypeEnum caseType;
    @ApiModelProperty("案件状态 枚举值：撤销未发起，撤销审核中，撤销审核通过，撤销审核拒绝")
    private CaseStatusEnum caseStatus;
    @ApiModelProperty("案件类型  枚举值：对公结算，微信还款，银行代扣")
    private ReceiptSourceTypeEnum sourceType;
    @ApiModelProperty("合同号")
    private String contractNo;
    @ApiModelProperty("收款银行 央行标准银行代码")
    private String bankCode;
    @ApiModelProperty("收款银行（分支行）")
    private String bankName;
    @ApiModelProperty("收款电子联行号")
    private String ebankCode;
    @ApiModelProperty("收款账户名称")
    private String accountName;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("收款成功时间")
    private Date succeedTime;
    @ApiModelProperty("扣款入账银行账号")
    private String creditAccount;
    @ApiModelProperty("收款金额 不可为负数")
    private BigDecimal arriveAmt;
    @ApiModelProperty("摘要")
    private String summary;
    @ApiModelProperty("案件号")
    private String caseNo;
    @ApiModelProperty("业务来源")
    private BusinessSourceEnum businessSource;
    /** 处理状态 */
    private ProcessStatusEnum processStatus ;
    @ApiModelProperty("收款来源id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long sourceId;
    private String isViewBtn ;

}
